\[vscode issue\] Golang Debug 无法命中断点
VSCode Golang Debug无法命中断点问题修复
发现在VSCode中连接公司DevBox调试Golang程序时,无法命中断点
在launch.json中添加参数
这样Debug程序会输出日志并停在程序入口,观察日志发现
有setBreakPoints的输入,也就是说编辑器(VSCode)是正确识别到了断点并传递给dlv-dap
dlv报错:找不到文件
在dlv控制台执行
dlv sources
,获取dlv装载的文件,发现有目标文件,但目录并非/home
而是/data00/home
观察VSCode的控制台打印的cwd,发现vscode识别的路径为/home
stat /home
,发现其为软链接,目标目录为/data00/home
定位原因,dlv将软链接文件装载为指向的物理文件,vscode传入的是软链接路径,二者路径不一致,dlv装载的内容不包含软链接路径
解决方法
- 在launch.json中添加
"substitutePath": [{"from": "/home", "to": "/data00/home"}]
- 在vscode中打开的路径使用物理路径
/data00/home
而非软链接路径,并将$HOME
设置为/data00/home
(export HOME=/data00$HOME)
- 在launch.json中添加
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Kevinello!
评论
UtterancesTwikoo